import type { BlogPost, PostDependency, PostMilestone, Topic } from '@/components/GanttChart/types';
// 模拟专题数据
export const mockTopics: Topic[] = [
  {
    id: '1001',
    name: '博客系统开发',
    priority: 1,
    progress: 50,
    startDate: new Date(Date.now() - 35 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() - 20 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1002',
    name: 'Vue3技术实践',
    priority: 2,
    progress: 30,
    startDate: new Date(Date.now() - 25 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() - 10 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1003',
    name: 'TypeScript进阶',
    priority: 3,
    progress: 75,
    startDate: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() - 15 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1004',
    name: '前端性能优化',
    priority: 4,
    progress: 40,
    startDate: new Date(Date.now() - 28 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() - 12 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1005',
    name: 'Pinia状态管理',
    priority: 5,
    progress: 90,
    startDate: new Date(Date.now() - 22 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() - 8 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1006',
    name: 'Element Plus实践',
    priority: 6,
    progress: 60,
    startDate: new Date(Date.now() - 20 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() - 5 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1007',
    name: 'Vite配置优化',
    priority: 7,
    progress: 25,
    startDate: new Date(Date.now() - 18 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() - 3 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1008',
    name: '前端工程化',
    priority: 8,
    progress: 55,
    startDate: new Date(Date.now() - 15 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() - 2 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1009',
    name: '响应式设计',
    priority: 9,
    progress: 70,
    startDate: new Date(Date.now() - 12 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() - 1 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1010',
    name: '前端安全实践',
    priority: 10,
    progress: 45,
    startDate: new Date(Date.now() - 10 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() - 0 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1011',
    name: 'Web组件开发',
    priority: 11,
    progress: 80,
    startDate: new Date(Date.now() - 8 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() + 2 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1012',
    name: '前端测试策略',
    priority: 12,
    progress: 35,
    startDate: new Date(Date.now() - 6 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() + 4 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1013',
    name: '微前端架构',
    priority: 13,
    progress: 65,
    startDate: new Date(Date.now() - 4 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() + 6 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1014',
    name: 'PWA技术实践',
    priority: 14,
    progress: 50,
    startDate: new Date(Date.now() - 2 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() + 8 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1015',
    name: 'WebAssembly应用',
    priority: 15,
    progress: 20,
    startDate: new Date(Date.now() - 1 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() + 10 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1016',
    name: 'GraphQL实践',
    priority: 16,
    progress: 75,
    startDate: new Date(Date.now() - 3 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() + 12 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1017',
    name: 'SSR技术探索',
    priority: 17,
    progress: 40,
    startDate: new Date(Date.now() - 5 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() + 14 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1018',
    name: '前端监控系统',
    priority: 18,
    progress: 60,
    startDate: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() + 16 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1019',
    name: '低代码平台',
    priority: 19,
    progress: 30,
    startDate: new Date(Date.now() - 9 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() + 18 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1020',
    name: '可视化图表',
    priority: 20,
    progress: 85,
    startDate: new Date(Date.now() - 11 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() + 20 * 24 * 60 * 60 * 1000).toISOString()
  }
];

// 模拟博客文章数据
export const mockBlogPosts: BlogPost[] = [
  {
    id: '0',
    title: '博客项目启动会议纪要-0',
    topic: '1001',
    author: '张三',
    wordCount: 1200,
    tags: ['项目', '会议'],
    status: 'published',
    progress: 100,
    startDate: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
    endDate: new Date(Date.now() + 8 * 24 * 60 * 60 * 1000),
    summary: '项目启动会议和初步规划',
    contentLink: '/blog/0',
    dependant: ['1', '2'],
    createdAt: new Date(Date.now() - 35 * 24 * 60 * 60 * 1000).toISOString(),
    updatedAt: new Date(Date.now() - 25 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '1',
    title: '博客项目启动会议纪要',
    topic: '1001',
    author: '张三',
    wordCount: 1500,
    tags: ['项目', '会议'],
    status: 'published',
    progress: 100,
    startDate: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() - 25 * 24 * 60 * 60 * 1000).toISOString(),
    summary: '项目启动会议和初步规划',
    contentLink: '/blog/1',
    dependant: ['2'],
    createdAt: new Date(Date.now() - 35 * 24 * 60 * 60 * 1000).toISOString(),
    updatedAt: new Date(Date.now() - 25 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '2',
    title: '博客系统需求分析报告',
    topic: '1001',
    author: '李四',
    wordCount: 2500,
    tags: ['需求', '分析'],
    status: 'published',
    progress: 100,
    startDate: new Date(Date.now() - 25 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() - 20 * 24 * 60 * 60 * 1000).toISOString(),
    summary: '收集和分析用户需求',
    contentLink: '/blog/2',
    dependant: ['3'],
    createdAt: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString(),
    updatedAt: new Date(Date.now() - 20 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '3',
    title: '博客系统架构设计方案',
    topic: '1001',
    author: '王五',
    wordCount: 3500,
    tags: ['设计', '架构'],
    status: 'review',
    progress: 80,
    startDate: new Date(Date.now() - 20 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() - 10 * 24 * 60 * 60 * 1000).toISOString(),
    summary: '系统架构和数据库设计',
    contentLink: '/blog/3',
    dependant: ['4', '5'],
    createdAt: new Date(Date.now() - 25 * 24 * 60 * 60 * 1000).toISOString(),
    updatedAt: new Date(Date.now() - 10 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '4',
    title: 'Vue3博客前端开发日志',
    topic: '1002',
    author: '赵六',
    wordCount: 4200,
    tags: ['前端', 'Vue'],
    status: 'writing',
    progress: 60,
    startDate: new Date(Date.now() - 15 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() + 10 * 24 * 60 * 60 * 1000).toISOString(),
    summary: '用户界面和交互开发',
    contentLink: '/blog/4',
    dependant: ['6'],
    createdAt: new Date(Date.now() - 20 * 24 * 60 * 60 * 1000).toISOString(),
    updatedAt: new Date(Date.now() - 5 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '5',
    title: 'Node.js博客后端开发进展',
    topic: '1002',
    author: '钱七',
    wordCount: 3800,
    tags: ['后端', 'Node'],
    status: 'writing',
    progress: 70,
    startDate: new Date(Date.now() - 10 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() + 15 * 24 * 60 * 60 * 1000).toISOString(),
    summary: '服务器端逻辑和API开发',
    contentLink: '/blog/5',
    dependant: ['6'],
    createdAt: new Date(Date.now() - 15 * 24 * 60 * 60 * 1000).toISOString(),
    updatedAt: new Date(Date.now() - 3 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '6',
    title: '博客系统测试计划与结果',
    topic: '1003',
    author: '孙八',
    wordCount: 1800,
    tags: ['测试', '质量'],
    status: 'draft',
    progress: 0,
    startDate: new Date(Date.now() + 10 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() + 25 * 24 * 60 * 60 * 1000).toISOString(),
    summary: '系统测试和Bug修复',
    contentLink: '/blog/6',
    dependant: ['7'],
    createdAt: new Date(Date.now() - 5 * 24 * 60 * 60 * 1000).toISOString(),
    updatedAt: new Date(Date.now() - 5 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '7',
    title: '博客系统部署上线方案',
    topic: '1003',
    author: '周九',
    wordCount: 2000,
    tags: ['运维', '部署'],
    status: 'draft',
    progress: 0,
    startDate: new Date(Date.now() + 20 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString(),
    summary: '生产环境部署和监控',
    contentLink: '/blog/7',
    dependant: [],
    createdAt: new Date(Date.now()).toISOString(),
    updatedAt: new Date(Date.now()).toISOString()
  },
  {
    id: '8',
    title: 'Vue3组件开发指南',
    topic: '1008',
    author: '吴十',
    wordCount: 3200,
    tags: ['Vue', '组件'],
    status: 'published',
    progress: 100,
    startDate: new Date(Date.now() - 8 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() - 5 * 24 * 60 * 60 * 1000).toISOString(),
    summary: 'Vue3组件开发最佳实践',
    contentLink: '/blog/8',
    createdAt: new Date(Date.now() - 10 * 24 * 60 * 60 * 1000).toISOString(),
    updatedAt: new Date(Date.now() - 5 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '9',
    title: 'TypeScript类型系统解析',
    topic: '1008',
    author: '郑十一',
    wordCount: 2800,
    tags: ['TypeScript', '类型'],
    status: 'review',
    progress: 90,
    startDate: new Date(Date.now() - 4 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() + 2 * 24 * 60 * 60 * 1000).toISOString(),
    summary: '深入理解TypeScript类型系统',
    contentLink: '/blog/9',
    createdAt: new Date(Date.now() - 6 * 24 * 60 * 60 * 1000).toISOString(),
    updatedAt: new Date(Date.now() - 1 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: '10',
    title: '前端性能优化实战',
    topic: '1013',
    author: '王十二',
    wordCount: 3600,
    tags: ['性能', '优化'],
    status: 'writing',
    progress: 50,
    startDate: new Date(Date.now() - 2 * 24 * 60 * 60 * 1000).toISOString(),
    endDate: new Date(Date.now() + 5 * 24 * 60 * 60 * 1000).toISOString(),
    summary: '现代前端性能优化技巧',
    contentLink: '/blog/10',
    createdAt: new Date(Date.now() - 3 * 24 * 60 * 60 * 1000).toISOString(),
    updatedAt: new Date(Date.now()).toISOString()
  }
];

// 模拟里程碑数据
export const mockMilestones: PostMilestone[] = [
  {
    id: 'm1',
    name: '【前端性能优化】专题预计结束',
    postId: '1',
    date: '2025-08-20',
    priority: 1,
    description: '【前端性能优化】专题预计结束',
    completed: true,
    createdAt: new Date(Date.now() - 25 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: 'm2',
    name: '【Vue3技术实践】专题预计结束',
    postId: '2',
    date: '2025-08-26',
    priority: 2,
    description: '【Vue3技术实践】专题预计结束',
    completed: true,
    createdAt: new Date(Date.now() - 20 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: 'm3',
    name: '【博客系统开发】专题预计结束',
    postId: '3',
    date: '2025-09-10',
    priority: 3,
    description: '【博客系统开发】专题预计结束',
    completed: false,
    createdAt: new Date(Date.now() - 10 * 24 * 60 * 60 * 1000).toISOString()
  }
];

// 模拟依赖关系数据
export const mockDependencies: PostDependency[] = [
  {
    id: 'd1',
    sourcePost: '1',
    targetPost: '2',
    relationType: 'finish-to-start',
    createdAt: new Date(Date.now() - 25 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: 'd2',
    sourcePost: '2',
    targetPost: '3',
    relationType: 'finish-to-start',
    createdAt: new Date(Date.now() - 20 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: 'd3',
    sourcePost: '3',
    targetPost: '4',
    relationType: 'finish-to-start',
    createdAt: new Date(Date.now() - 10 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: 'd4',
    sourcePost: '3',
    targetPost: '5',
    relationType: 'finish-to-start',
    createdAt: new Date(Date.now() - 10 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: 'd5',
    sourcePost: '4',
    targetPost: '6',
    relationType: 'finish-to-start',
    createdAt: new Date(Date.now() + 5 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: 'd6',
    sourcePost: '5',
    targetPost: '6',
    relationType: 'finish-to-start',
    createdAt: new Date(Date.now() + 5 * 24 * 60 * 60 * 1000).toISOString()
  },
  {
    id: 'd7',
    sourcePost: '6',
    targetPost: '7',
    relationType: 'finish-to-start',
    createdAt: new Date(Date.now() + 20 * 24 * 60 * 60 * 1000).toISOString()
  }
];
